//package org.yscz.controller;
//
//import com.alibaba.fastjson.JSONObject;
//import io.swagger.annotations.Api;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.data.redis.core.StringRedisTemplate;
//import org.springframework.util.StringUtils;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RestController;
//import org.yscz.common.HttpStatus;
//import org.yscz.common.Result;
//import org.yscz.common.ViewConfig;
//import org.yscz.entity.QuestionLine;
//import org.yscz.entity.vo.AnswerVo;
//import org.yscz.webSocket.WebSocket;
//
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * @author achen
// * @create 2021-08-18 11:21
// */
//@RestController
//@Slf4j
//@Api("答题信息接口")
//public class AnswerController {
//
//    @Value("${server.port}")
//    private Integer port;
//
//    @Autowired
//    private StringRedisTemplate stringRedisTemplate;
//
//    /**
//     * 答题下一题接口
//     *
//     * @param answerVo
//     * @return answerVo
//     */
//    @PostMapping("/answer/nextQuestion")
//    public Result nextQuestion(@RequestBody AnswerVo answerVo) throws IOException {
//        log.info("answerVo:[{}]", answerVo);
//        //去redis中查询对应测评记录下的题号对应的异常表情次数
//        //参数1:测评记录uuid 参数2:题号
//        String everyExceptionNum = (String) stringRedisTemplate.opsForHash().get(answerVo.getRecordUuidFk(), String.valueOf(answerVo.getQuestionNum()));
//        //接收到是下一个题目之后
//        if (StringUtils.isEmpty(everyExceptionNum)) {
//            //如果不存在,说明第一次添加,将ViewConfig.everyExceptionNum置为0
//            ViewConfig.everyExceptionNum = 0;
//        } else {
//            //如果redis中存在,将ViewConfig.everyExceptionNum置为everyExceptionNum
//            ViewConfig.everyExceptionNum = Integer.parseInt(everyExceptionNum);
//        }
//        log.info("ViewConfig.everyExceptionNum:[{}]", ViewConfig.everyExceptionNum);
//
//        //点击下一题 参数1:测评记录uuid 参数2:题号 参数三:异常表情次数
//        stringRedisTemplate.opsForHash().put(answerVo.getRecordUuidFk(), String.valueOf(answerVo.getQuestionNum()), String.valueOf(ViewConfig.everyExceptionNum));
//
//
//        //TODO 是否为时长异常规则 去t_project表中查出时间上线和时间下限作比较
//
//
//        //TODO 通过答题id查询出该答题的异常表情答题次数 然后timer继续计算 最后将这两个值加起来求出最后这道题的异常表情答题次数
//
//        //TODO 前台点击下一题 需要计算出最大的Pressure并将这个集合清空ViewConfig.pressureList
//
//        //TODO 保存本题的答题信息
//
//        //TODO 推送本题的折线图 前台描点 X坐标是第几题 y坐标是每道题的异常表情次数
//
//        //TODO 规则查询本题是否是异常题目 如果是异常 则无需更新状态 如果异常次数变了 需要加1
//
//        //通过webSocket推送给前台折题目线图的信息
//        QuestionLine questionLine = null;
//        List<QuestionLine> questionLines = new ArrayList<>();
//        for (int i = 1; i <= answerVo.getQuestionNum(); i++) {
//            questionLine = new QuestionLine();
//            //去redis根据测评记录的uuid查询出所有的题号跟异常表情次数
//            stringRedisTemplate.opsForHash().get(answerVo.getRecordUuidFk(), String.valueOf(answerVo.getQuestionNum()));
//            questionLine.setQuestionIndex(i);
//            String exceptionFaceNum = (String) stringRedisTemplate.opsForHash().get(answerVo.getRecordUuidFk(), String.valueOf(i));
//            questionLine.setExceptionFaceNum(Integer.parseInt(exceptionFaceNum));
//            questionLines.add(questionLine);
//        }
//
//        String lineJson = JSONObject.toJSONString(questionLines);
//        WebSocket.sendInfo(lineJson);
//        return Result.success(HttpStatus.SUCCESS, "成功", lineJson);
//
//    }
//
//    /**
//     * 答题上一题接口
//     *
//     * @param answerVo
//     * @return answerVo
//     */
//    @PostMapping("/answer/previousQuestion")
//    public Result previousQuestion(@RequestBody AnswerVo answerVo) {
//        log.info("answerVo:[{}]", answerVo);
//
//        //接收到是上一个题目,根据answerId查询出该条记录的信息,ViewConfig.everyExceptionNum的值为查询出的异常表情次数,如果有异常值,算法那继续追加,同时更新数据库
//        //ViewConfig.everyExceptionNum = answer_exception_num;
//
//
//        return Result.success(HttpStatus.SUCCESS, "成功", answerVo);
//
//    }
//
//
//}
